//public class Test {
//    public static void main(String[] args) {
//        int[][]array=new int[2][];//不规则二维数组
//        array[0]=new int[3];
//        array[1]=new int[5];
//        for (int i = 0; i < array.length; i++) {
//            for (int j = 0; j < array[i].length; j++) {
//                System.out.print(array[i][j]+" ");
//            }
//            System.out.println();
//        }
//    }
//}



//class Dog{
//    //成员变量、成员属性
//    public String name;//定义在类当中 方法外面的成员变量
//    public int age;
//
//    public void eat(){
//        //成员方法
//        System.out.println(name+"吃狗粮");
//    }
//}
//public class Test {
//    public static void main(String[] args) {
//        Dog dog=new Dog();//由类 生成 对象的 过程 叫做实例化
//        //现在我们已经拿到了一个对象   我们应该如何使用呢?
//        dog.name="小黑";
//        dog.age=1;
//        dog.eat();
//        System.out.println(dog.name);//成员变量 会有一个默认值 输出遵循的规则:1.引用类型 默认为null
//        System.out.println(dog.age);                                 //2.基本数据类型 默认为 对应的0值
//        //结论: 通过对象的引用 可以去访问 对象的成员变量. 同时也可以访问 对象的成员方法
//        System.out.println("==============");
//        Dog dog2=new Dog();
//        dog2.name="牛牛";
//        dog2.age=2;
//        dog2.eat();
//        System.out.println(dog2.name);
//        System.out.println(dog2.age);
//        //结论: 你可以通过关键字 new 实例化 多个对象
//    }
//}


import java.util.Date;

//public class Test {
//    public int year;
//    public int month;
//    public int day;
//    //写一个方法来设置年、月、日
//    public void setDate(int year,int month,int day){
//        this.year=year;
//        this.month=month;
//        this.day=day;
//    }
//    //打印我的年月日
//    public  void printDate(){
//        System.out.println(this.year+"年 "+this.month+"月 "+this.day+"日 ");
//    }
//
//
//    public static void main(String[] args) {
//        //疑问1.这么多的对象都调用了setDate方法,在这个方法内,是怎么区分是哪个对象调用setDate方法中的year、month、day?
//        //疑问2.形参名 和 成员变量 同名 为什么程序会抛出错误?
//        Test test=new Test();
//        test.setDate(2008,8,8);
//        test.printDate();
//
//        Test test2=new Test();
//        test2.setDate(2009,9,8);
//        test2.printDate();
//
//        Test test3=new Test();
//        test3.setDate(2005,7,28);
//        test3.printDate();
//        //疑问1 答:解决方式是 加this 关键字
//        //提出新问题: this 到底代表什么?
//        //新问题的回答: this 代表当前对象的引用
//        //疑问2 答: 原因是在这个方法内,year、month、day 都是局部变量 此时局部变量优先使用  (名字相同时在同一个方法内 形参自己给自己赋值,并没有修改到对象内的 year、month、day)
//        //this 引用的特性:
//        //1. this的类型：对应类类型引用，即哪个对象调用就是哪个对象的引用类型
//        //2. this只能在"成员方法"中使用
//        //3. 在"成员方法"中，this只能引用当前对象，不能再引用其他对象
//    }
//}


//public class Test {
//    public int year;
//    public int month;
//    public int day;
//    public Test(){
//        System.out.println("调用了不带参数的构造方法");
//    }
//    public Test(int year,int month,int day){
//        this.year=year;
//        this.month=month;
//        this.day=day;
//        System.out.println("调用了带有3个参数的构造方法");
//    }
//    public void printDate(){
//        System.out.println(year+"年 "+month+"月 "+day+"日 ");
//    }
//    public static void main(String[] args) {
//
//        Test test=new Test(2005,7,28);
//        test.printDate();
//        //结论: 构造方法是可以 发生 重载的
//    }
//}


//public class Test {
//    public int year;
//    public int month;
//    public int day;
//    public Test(){
//        this(2008,5,5);
//        System.out.println("调用了不带参数的构造方法");
//    }
//    public Test(int year,int month,int day){
//        this.year=year;
//        this.month=month;
//        this.day=day;
//        System.out.println("调用了带有3个参数的构造方法");
//    }
//    public void printDate(){
//        System.out.println(year+"年 "+month+"月 "+day+"日 ");
//    }
//    public static void main(String[] args) {
//        Test test=new Test();
//        test.printDate();
//    }
//}